package com.gts.sofa.impl;

import com.gts.sofa.service.Calculator;
import org.springframework.stereotype.Service;

/**
 *  一、AOP的意思
 *    AOP的意思（aspect oriented programming）面向切面编程
 *    OOP的意思（Object oriented programming）面向对象编程
 *
 *  二、AOP的作用
 *    解偶
 *
 *  三、定义
 *
 *    基于OOP基础之上新的编程思想，指在程序运行期间、将某段代码动态的切入到指定方法的指定位置进行运行的这种编程方式叫面向切面编程。
 *
 *  四、底层
 *
 *    底层基于动态代理
 *
 *  五、动态代理的优缺点
 *
 *     1）优点：动态代理能实现结偶，能将某段代码动态的切入到指定方法的指定位置进行运行
 *     2）缺点：写的麻烦、被代理类必须实现接口否则不能创建代理类。
 *
 *
 */

public class MyMathCalculator implements Calculator {
    @Override
    public int add(int num, int num1) {
        return num + num1;
    }

    @Override
    public int sub(int num, int num1) {
        return num - num1;
    }

    @Override
    public int mul(int num, int num1) {
        return num * num1;
    }

    @Override
    public int div(int num, int num1) {
        return num / num1;
    }
}
